arcpy开发&关于arcgis中的api arcpy.Describe

今天在学习关于工作空间相关知识,用于了下面的函数来实现判断当前输入的要素参数在哪个工作空间。其中主要运用到了arcpy.Describe函数。

1
2
3
4
5
6
7
def get_workspace(featureClass):
catalogPath = os.path.dirname(featureClass.catalogPath)
if arcpy.Describe(catalogPath).dataType == 'FeatureDataset':
arcpy.env.workspace = arcpy.Describe(catalogPath).path
else:
arcpy.env.workspace = featureClass.path
return arcpy.env.workspace

研究罢了,调试时查阅了Describe相关的参数,于是来看一下esri官方的参考文档,如下所说关于describe的种种:

Describe 函数返回的 Describe 对象包含多个属性,如数据类型、字段、索引以及许多其他属性。该对象的属性是动态的,这意味着根据所描述的数据类型,会有不同的描述属性可供使用。

Describe 属性被组织成一系列属性组。任何特定数据集都将至少获取其中一个组的属性。例如,如果要描述一个地理数据库要素类,您可访问 GDB 要素类、要素类、表和数据集属性组中的属性。所有数据,不管是哪种数据类型,总会获取通用 Describe 对象属性。

好了,说了这么多。我其实想说的是,可以使用describe查看数据的相关信息。比如shapeType、dataType、catalogPath、spatialReference等等相关信息。我们来看一下下面这一段代码。

1
2
3
4
5
input_fc = 'D:/Data/中国国界和省界的SHP格式数据/省界/bou2_4p.shp'
desc = arcpy.Describe(input_fc)
catalogPath = os.path.dirname(desc.catalogPath)
dataType=arcpy.Describe(catalogPath).dataType
dataType2=desc.dataType

现在我们把pycharm断点打开,一一窥探该函数会给我们带来什么样的信息。具体如下图所示。

1552917456413

好了,关于describe的学习就到处为此了。

LLQ wechat
扫一扫上面的二维码可以关注我哦
坚持技术分享,您的支持将鼓励我继续创作!